RESTful API (Representational State Transfer) হলো একটি আর্কিটেকচারাল স্টাইল যা ওয়েব সার্ভিস নির্মাণের জন্য ব্যবহৃত হয়। এটি HTTP প্রোটোকল এবং HTTP মেথড (GET, POST, PUT, DELETE) ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করে। CodeIgniter ফ্রেমওয়ার্কে RESTful API তৈরি করার জন্য একটি সহজ এবং কার্যকরী পদ্ধতি রয়েছে।
RESTful API একটি এপিআই (অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস) যা REST (Representational State Transfer) পদ্ধতি অনুসরণ করে। এটি একটি স্ট্যান্ডার্ড ডিজাইন প্যাটার্ন, যা HTTP প্রোটোকল এবং রিসোর্স ভিত্তিক আর্কিটেকচার ব্যবহার করে সার্ভার এবং ক্লায়েন্টের মধ্যে যোগাযোগ পরিচালনা করে।
RESTful API এ বিভিন্ন HTTP মেথড ব্যবহার করা হয় ডেটা পরিচালনার জন্য:
HTTP Method | বর্ণনা |
---|---|
GET | সার্ভার থেকে ডেটা রিট্রিভ করা। |
POST | নতুন ডেটা সার্ভারে আপলোড করা। |
PUT | বিদ্যমান ডেটা আপডেট করা। |
DELETE | ডেটা সার্ভার থেকে মুছে ফেলা। |
CodeIgniter তে RESTful API তৈরি করতে, সাধারণত REST Controller এবং HTTP methods ব্যবহৃত হয়। এছাড়া, আপনি codeigniter-restserver
লাইব্রেরি ব্যবহার করে সহজেই API তৈরি করতে পারেন।
codeigniter-restserver
লাইব্রেরি ইনস্টল করাcodeigniter-restserver
লাইব্রেরি ইনস্টল করতে হবে।Composer ব্যবহার করে লাইব্রেরি ইনস্টল করতে হবে:
composer require chriso/codeigniter-restserver
CodeIgniter এ API তৈরি করতে একটি কাস্টম কন্ট্রোলার তৈরি করুন, যেটি GET, POST, PUT, DELETE মেথডগুলির মাধ্যমে ডেটা গ্রহণ এবং প্রেরণ করতে পারে।
ApiController.php
কন্ট্রোলার<?php
defined('BASEPATH') OR exit('No direct script access allowed');
use Restserver\Libraries\REST_Controller;
class ApiController extends REST_Controller {
public function __construct() {
parent::__construct();
$this->load->model('User_model'); // মডেল লোড
}
// GET Request - User ডেটা রিটার্ন
public function user_get($id = NULL) {
if ($id === NULL) {
$users = $this->User_model->get_users();
$this->response($users, REST_Controller::HTTP_OK);
} else {
$user = $this->User_model->get_user($id);
if ($user) {
$this->response($user, REST_Controller::HTTP_OK);
} else {
$this->response(['message' => 'User not found'], REST_Controller::HTTP_NOT_FOUND);
}
}
}
// POST Request - নতুন User তৈরি
public function user_post() {
$data = $this->post();
$result = $this->User_model->create_user($data);
if ($result) {
$this->response(['message' => 'User created successfully'], REST_Controller::HTTP_CREATED);
} else {
$this->response(['message' => 'User creation failed'], REST_Controller::HTTP_BAD_REQUEST);
}
}
// PUT Request - User আপডেট করা
public function user_put($id) {
$data = $this->put();
$result = $this->User_model->update_user($id, $data);
if ($result) {
$this->response(['message' => 'User updated successfully'], REST_Controller::HTTP_OK);
} else {
$this->response(['message' => 'User update failed'], REST_Controller::HTTP_BAD_REQUEST);
}
}
// DELETE Request - User ডিলিট করা
public function user_delete($id) {
$result = $this->User_model->delete_user($id);
if ($result) {
$this->response(['message' => 'User deleted successfully'], REST_Controller::HTTP_OK);
} else {
$this->response(['message' => 'User deletion failed'], REST_Controller::HTTP_BAD_REQUEST);
}
}
}
/user
অথবা /user/{id}
রিকোয়েস্টে ব্যবহারকারীদের তথ্য রিটার্ন করে।/user
রিকোয়েস্টে নতুন ইউজার তৈরি করা হয়।/user/{id}
রিকোয়েস্টে ব্যবহারকারী তথ্য আপডেট করা হয়।/user/{id}
রিকোয়েস্টে ব্যবহারকারী তথ্য ডিলিট করা হয়।application/config/routes.php
ফাইলে রাউটিং সেটআপ করুন:
$route['api/user/(:num)'] = 'ApiController/user_get/$1'; // GET request to fetch user by ID
$route['api/user'] = 'ApiController/user_post'; // POST request to create new user
$route['api/user/(:num)'] = 'ApiController/user_put/$1'; // PUT request to update user
$route['api/user/(:num)'] = 'ApiController/user_delete/$1'; // DELETE request to delete user
CodeIgniter-এ RESTful API তৈরি করা খুবই সহজ এবং কার্যকরী। এটি ব্যবহারকারীদের HTTP মেথড ব্যবহার করে ডেটা আদান-প্রদান করতে এবং বিভিন্ন রিসোর্স অ্যাক্সেস করতে সক্ষম করে। CodeIgniter এর সাহায্যে RESTful API দ্রুত তৈরি করা সম্ভব, যা আপনার অ্যাপ্লিকেশনকে আরও স্কেলেবল এবং ইন্টারঅ্যাকটিভ করে তোলে।
Read more